1. Field of the Invention
The present invention relates to peripheral devices of computer systems. More particularly, the present invention relates to updating firmware of a peripheral device.
2. Description of the Prior Art
Peripheral devices coupled to computer systems (e.g., disk drives including magnetic and optical disk drives, printers, network interface cards, graphics cards, routers, etc.) typically comprise firmware executed by a microprocessor in order to implement the various functions of the peripheral device. For a number of reasons, it may be desirable to update the firmware within the peripheral device while in the field, for example, to fix programming bugs or to install new feature sets. An update application is typically executed by the computer system in order to load updated firmware into the peripheral device.
Running an update application may not be practical for certain peripheral devices. For example, certain versions of the Microsoft Windows® operating system periodically access the computer system's disk drive in order to access a system file. If an update application attempted to load updated firmware into the disk drive during operation of such an operating system, it would prevent the disk drive from servicing the periodic access requests by the operating system, and may ultimately “hang” it. Another drawback of an update application is that the operating system may configure the peripheral device into a particular operating mode, which may be “lost” once the peripheral device is reset to execute the updated firmware. Typically the computer system must then be rebooted after installing the updated firmware so that the operating system can reconfigure the peripheral device.
There is, therefore, a need to update the firmware of a peripheral device without hanging the operating system of the computer system. In another embodiment, there is a need to update the firmware of a peripheral device without needing to reboot the computer system after loading the updated firmware into the peripheral device.